package com.wind.taobao.api.trade.item.rest
{
	import com.wind.taobao.api.IPublicAPI;
	import com.wind.taobao.core.exception.InvalidRequestParametersException;
	import com.wind.taobao.core.util.TaobaoUtils;
	import com.wind.taobao.core.webservice.TaobaoRequest;



	/**
	 * taobao.items.get  Request
	 * @author fxy
	 */
	public class ItemsGetRequest extends TaobaoRequest implements IPublicAPI
	{
		public override function get method():String
		{
			return "taobao.items.get"
		}
		/**
		 *  Y 	 需返回的商品结构字段列表。可选值为Item中的以下字段：iid,title,nick,pic_path,cid,price,type,delist_time,post_fee;多个字段用“,”分隔。如：iid,title
		 */
		[Bindable]
		public var fields:String="iid,title,nick,pic_path,cid,price,type,delist_time,post_fee";
		/**
		 * 搜索字段。 用来搜索商品的title以及关键属性值的名称
		 */
		[Bindable]
		public var q:String;
		/**
		 * 卖家昵称列表。多个之间以“,”分隔;最多支持5个卖家昵称。如：nick1,nick2,nick3
		 */
		[Bindable]
		public var nicks:String;
		/**
		 * 商品所属类目Id,ItemCat中的cid字段。可以通过taobao.itemcats.get.v2取到
		 */
		[Bindable]
		public var cid:String;
		/**
		 * 商品属性。可以搜到拥有和输入的属性一样的商品列表。字段格式为：pid1:vid1;pid2:vid2.属性的pid调用taobao.itemprops.get.v2取得，属性值的vid用taobao.itempropvalues.get取得vid。
		 */
		[Bindable]
		public var props:String;
		/**
		 * 可以根据产品Id搜索属于这个spu的商品。这个字段可以通过查询 taobao.products.get 取到
		 */
		[Bindable]
		public var product_id:String;
		/**
		 * N 	商品最低价格。取值范围:0-100000000;精确到2位小数;单位:元。如:200.07，表示:200元7分。
		 */
		[Bindable]
		public var start_price:String;
		/**
		 * N 	商品最高价格。取值范围:0-100000000;精确到2位小数;单位:元。如:200.07，表示:200元7分。
		 */
		[Bindable]
		public var end_price:String;
		/**
		 * N 	页码。取值范围:大于零的整数; 默认值:1,即返回第一页数据。
		 */
		[Bindable]
		public var page_no:uint;
		/**
		 * N 	每页条数。取值范围:大于零的整数;最大值:200;默认值:40。
		 */
		[Bindable]
		public var page_size:uint;
		/**
		 * N 	排序方式。格式为column:asc/desc,column可选值为:<br>
		 *  price（价格）,<br>
		 *  delist_time（下架时间）, <br>
		 * seller_credit（卖家信用）；<br>
		 * 默认是按照上架时间倒序。如按价格升序排列表示为：price:asc。
		 */
		[Bindable]
		public var order_by:String;
		/**
		 * N 	旺旺在线状态（不设置结果包含所有状态，设置为true结果只有旺旺在线卖家的商品）。不能单独使用，要和其他条件一起用才行
		 */
		[Bindable]
		public var ww_status:String;
		/**
		 * N 	免运费（不设置包含所有邮费状态，设置为true结果只有卖家包邮的商品）。不能单独使用，要和其他条件一起用才行
		 */
		[Bindable]
		public var post_free:String;
		/**
		 * N 	所在省。如：浙江。具体可以根据taobao.areas.get 取到
		 */
		[Bindable]
		public var location__state:String;
		/**
		 * N 	所在市。如：杭州。具体可以根据taobao.areas.get取到
		 */
		[Bindable]
		public var location__city:String;

		public override function validate():void
		{
			if (!TaobaoUtils.hasValue(fields))
			{
				throw new InvalidRequestParametersException("请求参数[fields]不能为空");
			}
			if (!TaobaoUtils.hasAnyValue([q, nicks, cid, props, product_id]))
			{
				throw new InvalidRequestParametersException("请求参数[q,nicks,cid,props,product_id]至少有一个有值");
			}
		}
	}
}